#include <stdio.h>
#define MaxSize 100
typedef int DataType;
typedef struct
{
	DataType list[MaxSize];
	int size;
	}SeqList;
	
void ListInitiate(SeqList *L)
{
	L -> size = 0;
}

int ListLength(SeqList L)
{
	return L.size;
}

int ListInsert(SeqList *L, int i,DataType x)
{
	int j;
	if(L -> size >= MaxSize)
	{
		printf("顺序表已满无法插入！\n");
		return 0;
	}
	else if(i<0||i>L->size)
	{
		printf("参数i不合法！\n");
		return 0;
	}
	else
	{//此程序段有错误
	for(j = L -> size; j >= i; j--) 
	{
	L -> list[j+1] = L -> list[j];
	}
	L->list[i] = x;
	L->size++ ;
	return 0; 
	}
}
int ListDelete(SeqList *L,int i,DataType *x)
{
	int j;
	if(L -> size <= 0)
	{
		printf("顺序表已空无数据元素可删！\n");
		return 0;
	}
	else if(i < 0 || i > L ->size-1)
	{
		printf("参数i不合法");
		return 0;
	}
	else
	{
		//此程序段有错误
		*x = L -> list[i];
		for(j=i+1;j<=L->size-1;j++) 
		{
		L -> list[j-1] = L -> list[j];
		}
		L -> size--;
		return 1; 
	}
}

int ListGet(SeqList L,int i,DataType *x)
{
	if(i<0||i>L.size-1)
	{
		printf("参数i不合法！\n");
		return 0;
	}
	else
	{
		*x = L.list[i];
		return 1;
	}
}
//有错误；实现函数体，实现在L内查找x
int ListSearch(SeqList L,DataType x)
{
	for(int i=0;i<=L.size;i++)
	{
		if(L.list[i]==x)
		{
			return i;
		}
	}
	return -1;
 }
 
 int main(int argc,char *argv[])
 {
 	SeqList myList;
 	int i,x;
 	ListInitiate(&myList);
 	for(i=0;i<10;i++)
 	{
	 ListInsert(&myList,i,i+1);
	 }
 	ListDelete(&myList,4,&x);
 	printf("输出顺序表：\n");
 	for(i=0;i<ListLength(myList);i++)
 	{//此程序段有一处错误
	 ListGet(myList,i,&x);
	 printf("%d",x); 
	 }
	 return 0;
  }
